home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / modula2 / 170 < prev    next >
Encoding:
Internet Message Format  |  1996-08-06  |  3.3 KB

  1. Path: mail2news.demon.co.uk!nezumi.demon.co.uk
  2. From: Martin Tom Brown <Martin@nezumi.demon.co.uk>
  3. Newsgroups: comp.lang.modula2
  4. Subject: Re: Modula2 for C programmers?
  5. Date: Thu, 25 Jan 96 09:20:00 GMT
  6. Organization: Nezumi
  7. Message-ID: <822561600snz@nezumi.demon.co.uk>
  8. References: <erico-1801961940460001@infinitehell.cnmat.berkeley.edu> <4dqusf$d7k@weck.brokersys.com> <DLIGLJ.FDE@nyongwa.montreal.qc.ca> <4du11j$l31@weck.brokersys.com> <4e3t1f$d5q@seagoon.newcastle.edu.au> <4e5b5u$7s5@weck.brokersys.com>
  9. Reply-To: Martin@nezumi.demon.co.uk
  10. X-NNTP-Posting-Host: nezumi.demon.co.uk
  11. X-Newsreader: Demon Internet Simple News v1.29
  12. X-Mail2News-Path: nezumi.demon.co.uk
  13.  
  14. In article <4e5b5u$7s5@weck.brokersys.com> jguthrie@brokersys.com  writes:
  15.  
  16. > Peter Moylan (peter@fourier.newcastle.edu.au) wrote:
  17. > : Now, with x a variable of type Cheat, you can do bit operations
  18. > : on x.bits, and the answer will turn up in x.val.  This isn't
  19. > : portable, but then operations requiring type-casting are
  20. > : inherently non-portable in any language.
  21. > (At least you don't call it coercion.)
  22. > I disagree with your last statement, because an awful lot of experience
  23. > suggests that it just isn't true in the most typical case.
  24. > Look, most everyone posting on this newsgroup programs for computers with
  25. > certain characteristics.  These computers store signed integers with 
  26. > twos-complement notation and use the IEEE floating-point formats.
  27.  
  28. Yes but one of reasons I sometimes have to use serious bit twiddling
  29. is to read alien data tapes from systems that stored raw binary data
  30. in well defined but either proprietory or non IEEE real number formats.
  31.  
  32. > computers use either 16 or 32 bits to hold INTEGERs and 32 or 64 bits to
  33. > hold REALs.  
  34.  
  35. I do wonder what would happen to a lot of modern software if a new
  36. and popular architecture appeared that chose non-standard data sizes 
  37. say 7 bit bytes, 35 bit words and 42 bit addresses. I can guess :-)
  38. It would be a severe test of truely portable code!
  39.  
  40. > Leaving alone the "endianness" of the processor (which
  41. > really doesn't make any difference to what we're discussing) it is quite
  42. > possible to write portable code that makes use of casts to BITSET().
  43.  
  44. It depends how you are intending to access the bits individually.
  45. Among the bitset numbering orders I have seen are
  46.     {31, 30, ....    1, 0}
  47.     {24, 25, .... 32, 16, 17, ... 23, 8, 9,  ... 15,  7, 6, ... 0 }
  48.     {7, 6,   .... 0,  15, 14, ... 8, 23, 22, ... 16,  31, 30, ... 24 }
  49.  
  50. You can write portable code that will work with all of these, but it
  51. is easy to fall into the trap of machine dependence.
  52.  
  53. > Why is it dangerous to recognize that all of these data values are composed
  54. > of bits?
  55.  
  56. Because you open up the can of worms about how the internal bits 
  57. have been numbered - and there are no guarantees on that at all.
  58. (Perhaps the new standard says something about this? I don't know). 
  59.  
  60. > I also take exception to your statement that you hardly ever need to use
  61. > such code, and therefore, it must not be important.
  62.  
  63. I don't think he said the second part, and it is true that you very
  64. rarely need to go down to the bits level unless you are programming
  65. i/o devices at the hardware level or communicating with odd systems.
  66. When you do need it then it can be crucial.
  67.  
  68. Regards,
  69. -- 
  70. Martin Brown  <martin@nezumi.demon.co.uk>     __                CIS: 71651,470
  71. Scientific Software Consultancy             /^,,)__/
  72.